网络配置:net-tools工具包
教程每周二、四、六更新
本节讲解net-tools工具包,虽然从centos7开始已经弃用,但是老的工程师还在用,所以,我们也得会。
ifconfig命令
# 查看全部接口信息
ifconfig [-a]
# 查看特定网卡的信息
ifconfig [interface]
# 开其或关闭特定的网卡
ifconfig [interface] [up|down]
# 给某个网卡配置地址信息
ifconfig [interface] IP netmask netmask
实例演示:
# 查看网卡信息
[root@cloudstudy ~]# ifconfig ens33 # 查看特定网卡的信息
[root@cloudstudy ~]# ifconfig # 查看up状态(激活状态)的网卡信息
[root@cloudstudy ~]# ifconfig -a # 查看所有网卡信息
# 启动或关闭指定网卡
[root@cloudstudy ~]# ifconfig ens38 down # 这一步操作完成,ifconfig就看不到该网卡了,只能用ifconfig -a才能看到
[root@cloudstudy ~]# ifconfig ens38
ens38: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 00:0c:29:75:96:6c txqueuelen 1000 (Ethernet)
RX packets 5665181 bytes 358619644 (342.0 MiB)
RX errors 0 dropped 39597 overruns 0 frame 0
TX packets 35074 bytes 5732430 (5.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@cloudstudy ~]# ifconfig ens38 up
# 配置IP地址(两种形式都可以配置成功,第二种是带有netmask的配置方式)
[root@cloudstudy ~]# ifconfig ens34 10.0.0.138
[root@cloudstudy ~]# ifconfig ens34 10.0.0.138 netmask 255.255.255.0
# 确认配置结果
[root@cloudstudy ~]# ifconfig ens34
ens34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.138 netmask 255.255.255.0 broadcast 10.0.0.255
ether 00:0c:29:75:96:62 txqueuelen 1000 (Ethernet)
RX packets 123036 bytes 7545231 (7.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 57 bytes 10359 (10.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
注意:通过ifconfig配置的信息,是即时生效的,但是也只是临时生效,一旦重启,配置全部都会丢失。所以ifconfig命令在生产中,一般不用做配置网卡信息的命令。实际工作中,我们大多只用它来查看网卡信息。
route命令
route命令用于显示和操作IP路由表。在排查网络故障时常会用到。
使用格式:
route [-v] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
参数说明:
add:添加一条新路由。
del:删除一条路由。
-net: 目标地址是一个网络。
-host: 目标地址是一个主机。
netmask:当添加一个网络路由时,需要使用网络掩码。
gw:路由数据包通过网关。注意,你指定的网关必须能够达到。
我们通过实例来看一下:
# 查看路由信息。
[root@cloudstudy ~]# route -n # 加上-n选项,
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@cloudstudy ~]# route # 去掉-n选项。和加-n的区别是,这里把对应的名字打出来了,加上-n以后就只显示IP地址,不显示名字
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
说明:
第1行表示数据传送目的是访问Internet,则由接口ens33,将数据包发送到网关10.0.0.2
其中Flags为路由标志,标记当前网络节点的状态。
Flags标志说明:
U Up表示此路由当前为启动状态
H Host,表示此网关为一主机
G Gateway,表示此网关为一路由器
R Reinstate Route,使用动态路由重新初始化的路由
D Dynamically,此路由是动态性地写入
M Modified,此路由是由路由守护程序或导向器动态修改
! 表示此路由当前为关闭状态
备注:
route -n (-n 表示不解析名字,列出速度会比route 快)
设置默认网关
route add default gw 10.0.0.2
route del default gw 10.0.0.2
设置普通路由
# 添加或删除单个IP
[root@cloudstudy ~]# route add -host 172.18.2.1 gw 10.0.0.2
# 说明:到172.18.2.1主机的包,都通过10.0.0.2这个网关发送出去
[root@cloudstudy ~]# route del -host 172.18.2.1 gw 10.0.0.2
# 删除上面的路由
# 添加或删除一个网段
# 方法1:
[root@cloudstudy ~]# route add -net 172.18.2.0 netmask 255.255.255.0 gw 10.0.0.2
# 说明:去往172.18.2.0网段(掩码是24位的)的数据包都经过网关10.0.0.2发送出去。
[root@cloudstudy ~]# route del -net 172.18.2.0 netmask 255.255.255.0 gw 10.0.0.2
# 删除上面的路由
# 方法2:
[root@cloudstudy ~]# route add -net 172.18.2.0 netmask 255.255.255.0 gw 10.0.0.2 dev ens33 # 指定通过ens33网卡发送
[root@cloudstudy ~]# route del -net 172.18.2.0 netmask 255.255.255.0 gw 10.0.0.2 dev ens33
屏蔽一条路由
[root@cloudstudy ~]# route add -net 172.18.2.0 netmask 255.255.255.0 reject
说明:发往172.18.2.0/24地址段的都会被拒绝
注意:route设置的路由,都是即时且临时生效,一但系统重启,route的设置都会丢失。【永久保存方法我们后面再讲】
netstat命令
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态。
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
常见参数:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
实例演示:
# 列出所有端口(包括监听和未监听的)
[root@cloudstudy ~]# netstat -a
# 列出所有tcp端口
[root@cloudstudy ~]# netstat -at
# 列出所有udp端口
[root@cloudstudy ~]# netstat -au
# 列出所有处于监听状态(listen)的socket
[root@cloudstudy ~]# netstat -l
# 列出所有处于监听状态(listen)的tcp socket
[root@cloudstudy ~]# netstat -lt
# 列出所有处于监听状态(listen)的UDP socket
[root@cloudstudy ~]# netstat -lu
# 显示每个协议的统计信息
[root@cloudstudy ~]# netstat -s
Ip:
9334 total packets received
0 forwarded
0 incoming packets discarded
1649 incoming packets delivered
1040 requests sent out
7 outgoing packets dropped
...
Tcp:
0 active connections openings
1 passive connection openings
0 failed connection attempts
0 connection resets received
1 connections established
1337 segments received
878 segments send out
0 segments retransmited
0 bad segments received.
0 resets sent
Udp:
176 packets received
16 packets to unknown port received.
0 packet receive errors
194 packets sent
0 receive buffer errors
0 send buffer errors
...
# 查看当前所有TCP端口的占用情况,不显示名字,只显示数字信息
[root@cloudstudy ~]# netstat -ant
带你学Linux 云计算 运维。7月31日24时停止暑期集训加入
课程特色:
量身定制学习计划、正规出版社书籍电子版; 雷哥一对一答疑(集中做计划学习一个月,答疑有效期一年); 雷哥督促学习进度。 点我查看详情
推荐阅读
《一站式教程之集群架构》:
一文彻底搞懂IP地址知识(值得收藏的手册)
老司机:子网掩码我不怕,怕的是子网划分!
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!